﻿#define _CRT_SECURE_NO_WARNINGS 1

typedef char* pstring;
int main()
{
    const pstring p1; // 编译成功还是失败？
    const pstring* p2; // 编译成功还是失败？
    return 0;
}

// typedef 定义的类型别名与 const 结合时，const ​修饰的是整个类型别名，而非其展开后的底层类型
// const 默认修饰其左边的类型，没有就修饰右边

// const char* p1; 其实是 char* const p1; 所以是一个指向 char 的 const指针，常量指针必须初始化
// const char** p2; 其实是 char* const* p2; 所以是一个指向 char* const 的指针，指针不一定要初始化